﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Collections.Specialized;

namespace Com.Iooogle.Bms.Core
{
	/// <summary>
	/// 字符串工具类。
	/// </summary>
	public class UrlKit
	{
		/// <summary>
		/// 获取 URL 参数值(字符串)。
		/// </summary>
		/// <param name="paramName">指定参数名称。</param>
		/// <param name="defaultValue">当参数值为空时返回的默认值。</param>
		/// <returns></returns>
		public static string GetString(string paramName, string defaultValue)
		{
			NameValueCollection v = GetNC(false);

			if (v[paramName] == null) {
				return defaultValue;
			} else {
				return v[paramName].Trim();
			}
		}

		/// <summary>
		/// 获取 URL 参数值(字符串)。
		/// </summary>
		/// <param name="paramName">指定参数名称。</param>
		/// <returns></returns>
		public static string GetString(string paramName)
		{
			return GetString(paramName, string.Empty);
		}

		/// <summary>
		/// 获取 URL 参数值(字符串)。
		/// </summary>
		/// <param name="paramName">指定参数名称。</param>
		/// <returns></returns>
		public static int GetInt32(string paramName)
		{
			return GetInt32(paramName, 0);
		}

		/// <summary>
		/// 获取 URL 参数值(字符串)。
		/// </summary>
		/// <param name="paramName">指定参数名称。</param>
		/// <param name="defaultValue">当参数值为空时返回的默认值。</param>
		/// <returns></returns>
		public static int GetInt32(string paramName, int defaultValue)
		{
			NameValueCollection v = GetNC(false);

			if (v[paramName] == null) {
				return defaultValue;
			} else {
				return Convert.ToInt32(v[paramName]);
			}
		}

		/// <summary>
		/// 返回 POST/GET 值集合。
		/// </summary>
		/// <param name="isPost">标识是否获取 POST 参数值。</param>
		/// <returns></returns>
		private static NameValueCollection GetNC(bool isPost)
		{
			HttpContext ctx = HttpContext.Current;

			if (isPost) {
				return ctx.Request.Form;
			} else {
				return ctx.Request.QueryString;
			}
		}
	}
}
